#include "stdio.h"
#include<stdlib.h>
#define MAXQSIZE 100
#define TRUE 1
#define OK 1
#define FALSE 0
#define OVERFLOW 0
typedef struct{
int *elem;
int front; //队头指针
int rear; //队尾指针
}SeQueue;
void Init_SeQueue(SeQueue *sq)
{
sq->elem = (int*)malloc(MAXQSIZE * sizeof(int));
sq->front=sq->rear=0;
}
int Empty_SeQueue(SeQueue *sq)
{
return sq->front == sq->rear;
}
int In_SeQueue(SeQueue *sq, int x)
{
if ((sq->rear+1)%MAXQSIZE == sq->front)
{
printf("队满");
return 0;
}
sq->elem[sq->rear] = x;
sq->rear = (sq->rear+1)%MAXQSIZE;
return 1;
}
int Out_SeQueue (SeQueue *sq, int *y)
{
if (Empty_SeQueue(sq))
{
printf("队空");
return 0;
}
*y = sq->elem[sq->front];
sq->front = (sq->front+1)%MAXQSIZE;
return 1;
}
main()
{
SeQueue sq;
int i,j,k,y,n,m,cnt=0;
Init_SeQueue(&sq);
scanf("%d%d",&n,&m);
for (i=1; i<=n; i++)
{
In_SeQueue(&sq, i);
}
while(!Empty_SeQueue(&sq))
{
cnt++;
if (cnt != m)
{
Out_SeQueue(&sq, &y);
In_SeQueue(&sq, y);
}
else
{
Out_SeQueue(&sq, &y);
printf("%d",y);
cnt=0;
}
}
}
约瑟夫环 (队列实现)
最新推荐文章于 2024-08-02 17:09:09 发布